import Vue from 'vue'
import Vuex from 'vuex'
import { setItem, getItem } from '@/utils/storage'
Vue.use(Vuex)

const TOKEN_KEY = 'TOUTIAO_USER'// 先从缓存中查找，可以解决 vuex 刷新页面，数据丢失问题
export default new Vuex.Store({
  state: {
    // 一个对象，用来存储当前登录用户信息（token等数据）
    // user:null
    // user: JSON.parse(window.localStorage.getItem(TOKEN_KEY))
    // 抽离组件后效果
    user: getItem(TOKEN_KEY)// 将最新的token值赋值到本地缓存中
  },
  mutations: {
    setUser(state, data) {
      state.user = data

      // 为了防止刷新丢失，我们需要把数据备份到本地储存
      // window.localStorage.setItem(TOKEN_KEY, JSON.stringify(state.user))
      // 抽离组件后效果
      setItem(TOKEN_KEY, state.user)
    }
  },
  actions: {},
  modules: {}
})
